// 腾讯地图配置文件

// 环境变量配置
const TENCENT_MAP_API_KEY = import.meta.env.VITE_TENCENT_MAP_API_KEY || 'YOUR_TENCENT_MAP_API_KEY'

// 腾讯地图配置
export const TENCENT_MAP_CONFIG = {
  // 腾讯地图API Key
  apiKey: TENCENT_MAP_API_KEY,
  // 腾讯地图JS API版本
  version: '4.3.4',
  // 腾讯地图JS API地址
  apiUrl: 'https://map.qq.com/api/gljs',
  // 默认地图中心点（北京）
  defaultCenter: {
    lat: 39.908823,
    lng: 116.397470
  },
  // 默认缩放级别
  defaultZoom: 5,
  // 最小缩放级别
  minZoom: 3,
  // 最大缩放级别
  maxZoom: 18,
  // 地图样式
  mapStyleId: 'style1', // 可选: style1(默认), style2(卫星), style3(地形)
  // 默认地图样式
  defaultMapStyle: 'style1',
  // 是否显示控件
  controls: {
    zoom: true,      // 缩放控件
    scale: true,     // 比例尺
    rotate: false,   // 旋转控件
    overview: false  // 鹰眼控件
  },
  // 行政区划配置
  district: {
    // 是否显示省份边界
    showProvinceBoundary: true,
    // 边界样式
    boundaryStyle: {
      strokeColor: '#FF6B6B',
      strokeWeight: 2,
      strokeOpacity: 0.8,
      fillColor: '#FF6B6B',
      fillOpacity: 0.1
    },
    // 高亮样式
    highlightStyle: {
      strokeColor: '#4ECDC4',
      strokeWeight: 3,
      strokeOpacity: 1,
      fillColor: '#4ECDC4',
      fillOpacity: 0.2
    }
  },
  // 事件配置
  events: {
    // 是否启用点击事件
    enableClick: true,
    // 是否启用拖拽
    enableDrag: true,
    // 是否启用缩放
    enableZoom: true,
    // 是否启用双击缩放
    enableDoubleClickZoom: true,
    // 是否启用滚轮缩放
    enableScrollWheelZoom: true
  }
}

// 地图样式选项
export const MAP_STYLE_OPTIONS = {
  style1: {
    name: '默认样式',
    styleId: 'style1'
  },
  style2: {
    name: '卫星样式',
    styleId: 'style2'
  },
  style3: {
    name: '地形样式',
    styleId: 'style3'
  }
}

// 验证API Key是否配置
export function validateApiKey(): boolean {
  return TENCENT_MAP_CONFIG.apiKey !== 'YOUR_TENCENT_MAP_API_KEY' && !!TENCENT_MAP_CONFIG.apiKey
}

// 获取完整的地图配置
export function getMapConfig() {
  return { ...TENCENT_MAP_CONFIG }
}

// 更新API Key
export function updateApiKey(apiKey: string) {
  TENCENT_MAP_CONFIG.apiKey = apiKey
}

// 更新地图样式
export function updateMapStyle(styleId: string) {
  if (MAP_STYLE_OPTIONS[styleId as keyof typeof MAP_STYLE_OPTIONS]) {
    TENCENT_MAP_CONFIG.mapStyleId = styleId
  }
}

// 更新控件配置
export function updateControlsConfig(controls: Partial<typeof TENCENT_MAP_CONFIG.controls>) {
  Object.assign(TENCENT_MAP_CONFIG.controls, controls)
}

// 更新事件配置
export function updateEventsConfig(events: Partial<typeof TENCENT_MAP_CONFIG.events>) {
  Object.assign(TENCENT_MAP_CONFIG.events, events)
}